st_adjustment_get_values (self->vadjustment, &value, &lower, &upper, NULL, NULL, &page_size);
value = (value - lower) / (upper - page_size - lower);
- clutter_shader_effect_set_uniform (shader, "vvalue", G_TYPE_FLOAT, 1, value);
+ clutter_shader_effect_set_uniform (shader, "fade_edges_v", G_TYPE_INT, 1, self->fade_edges ? value >= 0.0 : value > 0.0);
st_adjustment_get_values (self->hadjustment, &value, &lower, &upper, NULL, NULL, &page_size);
value = (value - lower) / (upper - page_size - lower);
- clutter_shader_effect_set_uniform (shader, "hvalue", G_TYPE_FLOAT, 1, value);
+ clutter_shader_effect_set_uniform (shader, "fade_edges_h", G_TYPE_INT, 1, self->fade_edges ? value >= 0.0 : value > 0.0);
clutter_shader_effect_set_uniform (shader, "vfade_offset", G_TYPE_FLOAT, 1, self->vfade_offset);
clutter_shader_effect_set_uniform (shader, "hfade_offset", G_TYPE_FLOAT, 1, self->hfade_offset);
clutter_shader_effect_set_uniform (shader, "tex", G_TYPE_INT, 1, 0);
clutter_shader_effect_set_uniform (shader, "height", G_TYPE_FLOAT, 1, clutter_actor_get_height (self->actor));
clutter_shader_effect_set_uniform (shader, "width", G_TYPE_FLOAT, 1, clutter_actor_get_width (self->actor));
- clutter_shader_effect_set_uniform (shader, "fade_edges", G_TYPE_INT, 1, self->fade_edges);
clutter_shader_effect_set_uniform (shader, "fade_area_topleft", CLUTTER_TYPE_SHADER_FLOAT, 2, fade_area_topleft);
clutter_shader_effect_set_uniform (shader, "fade_area_bottomright", CLUTTER_TYPE_SHADER_FLOAT, 2, fade_area_bottomright);
uniform float width;
uniform float vfade_offset;
uniform float hfade_offset;
-uniform float vvalue;
-uniform float hvalue;
-uniform bool fade_edges;
+uniform bool fade_edges_h;
+uniform bool fade_edges_v;
uniform vec2 fade_area_topleft;
uniform vec2 fade_area_bottomright;
float ratio = 1.0;
float fade_bottom_start = fade_area_bottomright[1] - vfade_offset;
float fade_right_start = fade_area_bottomright[0] - hfade_offset;
- bool fade_top = y < vfade_offset && (fade_edges ? vvalue >= 0.0
- : vvalue > 0.0);
- bool fade_bottom = y > fade_bottom_start && (fade_edges ? vvalue <= 1.0
- : vvalue < 1.0);
- bool fade_left = x < hfade_offset && (fade_edges ? hvalue >= 0.0
- : hvalue > 0.0);
- bool fade_right = x > fade_right_start && (fade_edges ? hvalue <= 1.0
- : hvalue < 1.0);
+ bool fade_top = y < vfade_offset && fade_edges_v;
+ bool fade_bottom = y > fade_bottom_start && fade_edges_v;
+ bool fade_left = x < hfade_offset && fade_edges_h;
+ bool fade_right = x > fade_right_start && fade_edges_h;
float vfade_scale = height / vfade_offset;
if (fade_top) {